A Type-Theoretic Memory Model for Verification of Sequential Java Programs
نویسندگان
چکیده
The version of the following full text has not yet been defined or was untraceable and may differ from the publisher's version. Please be advised that this information was generated on 2015-12-31 and may be subject to change.
منابع مشابه
Formal Verification of Sequential Systems with Infinitely Many States Master’s Thesis
In recent years, model checking algorithms for verification of infinite-state systems were deeply studied and applied to practical problems. We show, how to use the algorithms for pushdown systems and various modal logics of [4] for verification of Java programs. The process of mechanical abstract model generation is described, and a prototype tool called JAVACHECK is implemented to verify our ...
متن کاملModel Checking Java Using Pushdown Systems
In recent years, model checking algorithms for the verification of infinite-state systems were introduced. We evaluate the possibility of using the algorithms for pushdown systems and various modal logics of [3] for verification of Java programs. It turns out that pushdown systems are particularly suitable for modeling the control flow of sequential Java programs, including exceptions (which ar...
متن کاملLocality Reasoning of Multithreaded Programs through Type Inference
In multithreaded object-oriented programs, locality refers to the dynamic scoping relation among threads and objects in a potentially shared-memory context. This paper calls for type-theoretic investigations into two forms of locality – thread locality and aggregate locality – and proposes a unified type inference algorithm to reason about them over unannotated real-world Java programs.
متن کاملHiding the Java Memory Model with Compilers
The Java memory model is very diÆcult for programmers to understand, and there are several ways of interpreting the memory model. In addition, like most programming languages that follow the shared memory parallel programming model, non-deterministic behaviors due to data races can also occur in Java concurrent programs. Data races and synchronization make it impossible to apply classical compi...
متن کاملVerification of Causality Requirements in Java Memory Model Is Undecidable
The purpose of the Java memory model is to formalize the behavior of the shared memory in multithreaded Java programs. The subtlest points of its formalization are causality requirements that serve to provide safety and security guarantees for incorrectly synchronized Java programs. In this paper, we consider the problem of verifying whether an execution of a multithreaded Java program satisfie...
متن کامل